|
Dynamic loading is a mechanism by which a computer program can, at run time, load a library (or other binary) into memory, retrieve the addresses of functions and variables contained in the library, execute those functions or access those variables, and unload the library from memory. It is one of the 3 mechanisms by which a computer program can use some other software; the other two are static linking and dynamic linking. Unlike static linking and dynamic linking, dynamic loading allows a computer program to start up in the absence of these libraries, to discover available libraries, and to potentially gain additional functionality.〔(Autoconf, Automake, and Libtool: Dynamic Loading )〕〔(Linux4U: ELF Dynamic Loading )〕 == History == Dynamic loading was a common technique for IBM/360 Operating systems (1960s to, the - still extant - Z/Architecture), particularly for I/O subroutines, and for COBOL and PL/1 runtime libraries. As far as the application programmer is concerned, the loading is largely transparent, since it is mostly handled by the operating system (or its I/O subsystem). The main advantages are: * Fixes (patches) to the subsystems fixed all programs at once, without the need to relink them * Libraries could be protected from unauthorized modification IBM's strategic transaction processing system, CICS (1970s onwards) uses dynamic loading extensively both for its kernel and for normal application program loading. Corrections to application programs could be made offline and new copies of changed programs loaded dynamically without needing to restart CICS 〔http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhp3/dfhp3oq.htm〕〔http://www-01.ibm.com/support/docview.wss?uid=swg21031546〕(that can, and frequently does, run 24/7). Shared libraries were added to Unix in the 1980s, but initially without the ability to let a program load additional libraries after startup. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Dynamic loading」の詳細全文を読む スポンサード リンク
|